;--- include file created by h2incx v0.96, copyright 2005 japheth
;--- source file: d:\ddraw\include\d3dx9anim.h, last modified: 12/1/2004 15:7
ifndef __D3DX9ANIM_H__
__D3DX9ANIM_H__	EQU	<>
DEFINE_GUID(IID_ID3DXAnimationSet,698cfb3fh,9289h,4d95h,9ah,57h,33h,0a9h,4bh,5ah,65h,0f9h)
DEFINE_GUID(IID_ID3DXKeyframedAnimationSet,0fa4e8e3ah,9786h,407dh,8bh,4ch,59h,95h,89h,37h,64h,0afh)
DEFINE_GUID(IID_ID3DXCompressedAnimationSet,6cc2480dh,3808h,4739h,9fh,88h,0deh,49h,0fah,0cdh,8dh,4ch)
DEFINE_GUID(IID_ID3DXAnimationController,0ac8948ech,0f86dh,43e2h,96h,0deh,31h,0fch,35h,0f9h,6dh,9eh)
D3DXMESHDATATYPE typedef DWORD
D3DXMESHTYPE_MESH = 001h 
D3DXMESHTYPE_PMESH = 002h 
D3DXMESHTYPE_PATCHMESH = 003h 
D3DXMESHTYPE_FORCE_DWORD = 7fffffffh 

D3DXMESHDATA	struct
Type_	D3DXMESHDATATYPE	?
union
pMesh	LPD3DXMESH	?
pPMesh	LPD3DXPMESH	?
pPatchMesh	LPD3DXPATCHMESH	?
ends
D3DXMESHDATA	ends

LPD3DXMESHDATA typedef ptr D3DXMESHDATA

D3DXMESHCONTAINER	struct
Name_	LPSTR	?
MeshData	D3DXMESHDATA	<>
pMaterials	LPD3DXMATERIAL	?
pEffects	LPD3DXEFFECTINSTANCE	?
NumMaterials	DWORD	?
pAdjacency	DWORD	?
pSkinInfo	LPD3DXSKININFO	?
pNextMeshContainer DWORD ?
D3DXMESHCONTAINER	ends

LPD3DXMESHCONTAINER typedef ptr D3DXMESHCONTAINER

D3DXFRAME	struct
Name_	LPSTR	?
TransformationMatrix	D3DXMATRIX	<>
pMeshContainer	LPD3DXMESHCONTAINER	?
pFrameSibling DWORD ?
pFrameFirstChild DWORD ?
D3DXFRAME	ends

LPD3DXFRAME typedef ptr D3DXFRAME

;ID3DXAllocateHierarchy typedef ID3DXAllocateHierarchy

LPD3DXALLOCATEHIERARCHY typedef ptr ID3DXAllocateHierarchy

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXAllocateHierarchy>
DECLARE_INTERFACE(ID3DXAllocateHierarchy)
;{
STDMETHOD CreateFrame , :LPSTR
STDMETHOD CreateMeshContainer 
STDMETHOD DestroyFrame , :LPD3DXFRAME
STDMETHOD DestroyMeshContainer , :LPD3DXMESHCONTAINER
;}
DECLARE_INTERFACE_END

;ID3DXLoadUserData typedef ID3DXLoadUserData

LPD3DXLOADUSERDATA typedef ptr ID3DXLoadUserData

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXLoadUserData>
DECLARE_INTERFACE(ID3DXLoadUserData)
;{
STDMETHOD LoadTopLevelData , :LPD3DXFILEDATA
STDMETHOD LoadFrameChildData , :LPD3DXFRAME
STDMETHOD LoadMeshChildData , :LPD3DXMESHCONTAINER
;}
DECLARE_INTERFACE_END

;ID3DXSaveUserData typedef ID3DXSaveUserData

LPD3DXSAVEUSERDATA typedef ptr ID3DXSaveUserData

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXSaveUserData>
DECLARE_INTERFACE(ID3DXSaveUserData)
;{
STDMETHOD AddFrameChildData , :ptr D3DXFRAME
STDMETHOD AddMeshChildData , :ptr D3DXMESHCONTAINER
STDMETHOD AddTopLevelDataObjectsPre , :LPD3DXFILESAVEOBJECT
STDMETHOD AddTopLevelDataObjectsPost , :LPD3DXFILESAVEOBJECT
STDMETHOD RegisterTemplates , :LPD3DXFILE
STDMETHOD SaveTemplates , :LPD3DXFILESAVEOBJECT
;}
DECLARE_INTERFACE_END

D3DXCALLBACK_SEARCH_FLAGS typedef DWORD
D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION = 01h 
D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION = 02h 
D3DXCALLBACK_SEARCH_FORCE_DWORD = 7fffffffh 

;ID3DXAnimationSet typedef ID3DXAnimationSet

LPD3DXANIMATIONSET typedef ptr ID3DXAnimationSet

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXAnimationSet>
DECLARE_INTERFACE_(ID3DXAnimationSet,IUnknown)
;{
STDMETHOD QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_ ULONG,AddRef 
STDMETHOD_ ULONG,Release 
STDMETHOD_ LPCSTR,GetName 
STDMETHOD_ DOUBLE,GetPeriod 
STDMETHOD_ DOUBLE,GetPeriodicPosition , :DOUBLE
STDMETHOD_ UINT,GetNumAnimations 
STDMETHOD GetAnimationNameByIndex , :DWORD, :ptr LPSTR
STDMETHOD GetAnimationIndexByName , :LPSTR, :ptr DWORD
STDMETHOD GetSRT 
STDMETHOD GetCallback 
;}
DECLARE_INTERFACE__END

D3DXPLAYBACK_TYPE typedef DWORD
D3DXPLAY_LOOP = 0 
D3DXPLAY_ONCE = 1 
D3DXPLAY_PINGPONG = 2 
D3DXPLAY_FORCE_DWORD = 7fffffffh 

D3DXKEY_VECTOR3	struct
Time	REAL4	?
Value	D3DXVECTOR3	<>
D3DXKEY_VECTOR3	ends

LPD3DXKEY_VECTOR3 typedef ptr D3DXKEY_VECTOR3

D3DXKEY_QUATERNION	struct
Time	REAL4	?
Value	D3DXQUATERNION	<>
D3DXKEY_QUATERNION	ends

LPD3DXKEY_QUATERNION typedef ptr D3DXKEY_QUATERNION

D3DXKEY_CALLBACK	struct
Time	REAL4	?
pCallbackData	LPVOID	?
D3DXKEY_CALLBACK	ends

LPD3DXKEY_CALLBACK typedef ptr D3DXKEY_CALLBACK

D3DXCOMPRESSION_FLAGS typedef DWORD
D3DXCOMPRESS_DEFAULT = 00h 
D3DXCOMPRESS_FORCE_DWORD = 7fffffffh 

;ID3DXKeyframedAnimationSet typedef ID3DXKeyframedAnimationSet

LPD3DXKEYFRAMEDANIMATIONSET typedef ptr ID3DXKeyframedAnimationSet

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXKeyframedAnimationSet>
DECLARE_INTERFACE_(ID3DXKeyframedAnimationSet,ID3DXAnimationSet)
;{
STDMETHOD QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_ ULONG,AddRef 
STDMETHOD_ ULONG,Release 
STDMETHOD_ LPCSTR,GetName 
STDMETHOD_ DOUBLE,GetPeriod 
STDMETHOD_ DOUBLE,GetPeriodicPosition , :DOUBLE
STDMETHOD_ UINT,GetNumAnimations 
STDMETHOD GetAnimationNameByIndex , :DWORD, :ptr LPSTR
STDMETHOD GetAnimationIndexByName , :LPSTR, :ptr DWORD
STDMETHOD GetSRT 
STDMETHOD GetCallback 
STDMETHOD_ D3DXPLAYBACK_TYPE,GetPlaybackType 
STDMETHOD_ DOUBLE,GetSourceTicksPerSecond 
STDMETHOD_ UINT,GetNumScaleKeys , :DWORD
STDMETHOD GetScaleKeys , :DWORD, :LPD3DXKEY_VECTOR3
STDMETHOD GetScaleKey , :DWORD, :DWORD, :LPD3DXKEY_VECTOR3
STDMETHOD SetScaleKey , :DWORD, :DWORD, :LPD3DXKEY_VECTOR3
STDMETHOD_ UINT,GetNumRotationKeys , :DWORD
STDMETHOD GetRotationKeys , :DWORD, :LPD3DXKEY_QUATERNION
STDMETHOD GetRotationKey , :DWORD, :DWORD, :LPD3DXKEY_QUATERNION
STDMETHOD SetRotationKey , :DWORD, :DWORD, :LPD3DXKEY_QUATERNION
STDMETHOD_ UINT,GetNumTranslationKeys , :DWORD
STDMETHOD GetTranslationKeys , :DWORD, :LPD3DXKEY_VECTOR3
STDMETHOD GetTranslationKey , :DWORD, :DWORD, :LPD3DXKEY_VECTOR3
STDMETHOD SetTranslationKey , :DWORD, :DWORD, :LPD3DXKEY_VECTOR3
STDMETHOD_ UINT,GetNumCallbackKeys 
STDMETHOD GetCallbackKeys , :LPD3DXKEY_CALLBACK
STDMETHOD GetCallbackKey , :DWORD, :LPD3DXKEY_CALLBACK
STDMETHOD SetCallbackKey , :DWORD, :LPD3DXKEY_CALLBACK
STDMETHOD UnregisterScaleKey , :DWORD, :DWORD
STDMETHOD UnregisterRotationKey , :DWORD, :DWORD
STDMETHOD UnregisterTranslationKey , :DWORD, :DWORD
STDMETHOD RegisterAnimationSRTKeys 
STDMETHOD Compress 
STDMETHOD UnregisterAnimation , :DWORD
;}
DECLARE_INTERFACE__END

;ID3DXCompressedAnimationSet typedef ID3DXCompressedAnimationSet

LPD3DXCOMPRESSEDANIMATIONSET typedef ptr ID3DXCompressedAnimationSet

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXCompressedAnimationSet>
DECLARE_INTERFACE_(ID3DXCompressedAnimationSet,ID3DXAnimationSet)
;{
STDMETHOD QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_ ULONG,AddRef 
STDMETHOD_ ULONG,Release 
STDMETHOD_ LPCSTR,GetName 
STDMETHOD_ DOUBLE,GetPeriod 
STDMETHOD_ DOUBLE,GetPeriodicPosition , :DOUBLE
STDMETHOD_ UINT,GetNumAnimations 
STDMETHOD GetAnimationNameByIndex , :DWORD, :ptr LPSTR
STDMETHOD GetAnimationIndexByName , :LPSTR, :ptr DWORD
STDMETHOD GetSRT 
STDMETHOD GetCallback 
STDMETHOD_ D3DXPLAYBACK_TYPE,GetPlaybackType 
STDMETHOD_ DOUBLE,GetSourceTicksPerSecond 
STDMETHOD GetCompressedData , :ptr LPD3DXBUFFER
STDMETHOD_ UINT,GetNumCallbackKeys 
STDMETHOD GetCallbackKeys , :LPD3DXKEY_CALLBACK
;}
DECLARE_INTERFACE__END

D3DXPRIORITY_TYPE typedef DWORD
D3DXPRIORITY_LOW = 0 
D3DXPRIORITY_HIGH = 1 
D3DXPRIORITY_FORCE_DWORD = 7fffffffh 

D3DXTRACK_DESC	struct
Priority	D3DXPRIORITY_TYPE	?
Weight	REAL4	?
Speed	REAL4	?
Position	DOUBLE	?
Enable	BOOL	?
D3DXTRACK_DESC	ends

LPD3DXTRACK_DESC typedef ptr D3DXTRACK_DESC

D3DXEVENT_TYPE typedef DWORD
D3DXEVENT_TRACKSPEED = 0 
D3DXEVENT_TRACKWEIGHT = 1 
D3DXEVENT_TRACKPOSITION = 2 
D3DXEVENT_TRACKENABLE = 3 
D3DXEVENT_PRIORITYBLEND = 4 
D3DXEVENT_FORCE_DWORD = 7fffffffh 

D3DXTRANSITION_TYPE typedef DWORD
D3DXTRANSITION_LINEAR = 000h 
D3DXTRANSITION_EASEINEASEOUT = 001h 
D3DXTRANSITION_FORCE_DWORD = 7fffffffh 

D3DXEVENT_DESC	struct
Type_	D3DXEVENT_TYPE	?
Track	DWORD	?
StartTime	DOUBLE	?
Duration	DOUBLE	?
Transition	D3DXTRANSITION_TYPE	?
union
Weight	REAL4	?
Speed	REAL4	?
Position	DOUBLE	?
Enable	BOOL	?
ends
D3DXEVENT_DESC	ends

LPD3DXEVENT_DESC typedef ptr D3DXEVENT_DESC

D3DXEVENTHANDLE  typedef DWORD
LPD3DXEVENTHANDLE  typedef ptr D3DXEVENTHANDLE
;ID3DXAnimationCallbackHandler typedef ID3DXAnimationCallbackHandler

LPD3DXANIMATIONCALLBACKHANDLER typedef ptr ID3DXAnimationCallbackHandler

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXAnimationCallbackHandler>
DECLARE_INTERFACE(ID3DXAnimationCallbackHandler)
;{
STDMETHOD HandleCallback , :DWORD, :LPVOID
;}
DECLARE_INTERFACE_END

;ID3DXAnimationController typedef ID3DXAnimationController

LPD3DXANIMATIONCONTROLLER typedef ptr ID3DXAnimationController

;#undef INTERFACE 
INTERFACE	EQU	<ID3DXAnimationController>
DECLARE_INTERFACE_(ID3DXAnimationController,IUnknown)
;{
STDMETHOD QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_ ULONG,AddRef 
STDMETHOD_ ULONG,Release 
STDMETHOD_ UINT,GetMaxNumAnimationOutputs 
STDMETHOD_ UINT,GetMaxNumAnimationSets 
STDMETHOD_ UINT,GetMaxNumTracks 
STDMETHOD_ UINT,GetMaxNumEvents 
STDMETHOD RegisterAnimationOutput 
STDMETHOD RegisterAnimationSet , :LPD3DXANIMATIONSET
STDMETHOD UnregisterAnimationSet , :LPD3DXANIMATIONSET
STDMETHOD_ UINT,GetNumAnimationSets 
STDMETHOD GetAnimationSet , :DWORD, :ptr LPD3DXANIMATIONSET
STDMETHOD GetAnimationSetByName , :LPSTR, :ptr LPD3DXANIMATIONSET
STDMETHOD AdvanceTime , :DOUBLE, :LPD3DXANIMATIONCALLBACKHANDLER
STDMETHOD ResetTime 
STDMETHOD_ DOUBLE,GetTime 
STDMETHOD SetTrackAnimationSet , :DWORD, :LPD3DXANIMATIONSET
STDMETHOD GetTrackAnimationSet , :DWORD, :ptr LPD3DXANIMATIONSET
STDMETHOD SetTrackPriority , :DWORD, :D3DXPRIORITY_TYPE
STDMETHOD SetTrackSpeed , :DWORD, :REAL4
STDMETHOD SetTrackWeight , :DWORD, :REAL4
STDMETHOD SetTrackPosition , :DWORD, :DOUBLE
STDMETHOD SetTrackEnable , :DWORD, :BOOL
STDMETHOD SetTrackDesc , :DWORD, :LPD3DXTRACK_DESC
STDMETHOD GetTrackDesc , :DWORD, :LPD3DXTRACK_DESC
STDMETHOD SetPriorityBlend , :REAL4
STDMETHOD_ FLOAT,GetPriorityBlend 
STDMETHOD_ D3DXEVENTHANDLE,KeyTrackSpeed , :DWORD, :REAL4, :DOUBLE, :DOUBLE, :D3DXTRANSITION_TYPE
STDMETHOD_ D3DXEVENTHANDLE,KeyTrackWeight , :DWORD, :REAL4, :DOUBLE, :DOUBLE, :D3DXTRANSITION_TYPE
STDMETHOD_ D3DXEVENTHANDLE,KeyTrackPosition , :DWORD, :DOUBLE, :DOUBLE
STDMETHOD_ D3DXEVENTHANDLE,KeyTrackEnable , :DWORD, :BOOL, :DOUBLE
STDMETHOD_ D3DXEVENTHANDLE,KeyPriorityBlend , :REAL4, :DOUBLE, :DOUBLE, :D3DXTRANSITION_TYPE
STDMETHOD UnkeyEvent , :D3DXEVENTHANDLE
STDMETHOD UnkeyAllTrackEvents , :DWORD
STDMETHOD UnkeyAllPriorityBlends 
STDMETHOD_ D3DXEVENTHANDLE,GetCurrentTrackEvent , :DWORD, :D3DXEVENT_TYPE
STDMETHOD_ D3DXEVENTHANDLE,GetCurrentPriorityBlend 
STDMETHOD_ D3DXEVENTHANDLE,GetUpcomingTrackEvent , :DWORD, :D3DXEVENTHANDLE
STDMETHOD_ D3DXEVENTHANDLE,GetUpcomingPriorityBlend , :D3DXEVENTHANDLE
STDMETHOD ValidateEvent , :D3DXEVENTHANDLE
STDMETHOD GetEventDesc , :D3DXEVENTHANDLE, :LPD3DXEVENT_DESC
STDMETHOD CloneAnimationController 
;}
DECLARE_INTERFACE__END

ifdef __cplusplus 
;extern "C"
;{
endif 
D3DXLoadMeshHierarchyFromXA proto stdcall  :LPSTR, :DWORD, :LPDIRECT3DDEVICE9, :LPD3DXALLOCATEHIERARCHY, :LPD3DXLOADUSERDATA, :ptr LPD3DXFRAME, :ptr LPD3DXANIMATIONCONTROLLER
D3DXLoadMeshHierarchyFromXW proto stdcall  :LPWSTR, :DWORD, :LPDIRECT3DDEVICE9, :LPD3DXALLOCATEHIERARCHY, :LPD3DXLOADUSERDATA, :ptr LPD3DXFRAME, :ptr LPD3DXANIMATIONCONTROLLER
ifdef UNICODE 
D3DXLoadMeshHierarchyFromX	EQU	<D3DXLoadMeshHierarchyFromXW>
else 
D3DXLoadMeshHierarchyFromX	EQU	<D3DXLoadMeshHierarchyFromXA>
endif 
D3DXLoadMeshHierarchyFromXInMemory proto stdcall  :LPCVOID, :DWORD, :DWORD, :LPDIRECT3DDEVICE9, :LPD3DXALLOCATEHIERARCHY, :LPD3DXLOADUSERDATA, :ptr LPD3DXFRAME, :ptr LPD3DXANIMATIONCONTROLLER
D3DXSaveMeshHierarchyToFileA proto stdcall  :LPSTR, :DWORD, :ptr D3DXFRAME, :LPD3DXANIMATIONCONTROLLER, :LPD3DXSAVEUSERDATA
D3DXSaveMeshHierarchyToFileW proto stdcall  :LPWSTR, :DWORD, :ptr D3DXFRAME, :LPD3DXANIMATIONCONTROLLER, :LPD3DXSAVEUSERDATA
ifdef UNICODE 
D3DXSaveMeshHierarchyToFile	EQU	<D3DXSaveMeshHierarchyToFileW>
else 
D3DXSaveMeshHierarchyToFile	EQU	<D3DXSaveMeshHierarchyToFileA>
endif 
D3DXFrameDestroy proto stdcall  :LPD3DXFRAME, :LPD3DXALLOCATEHIERARCHY
D3DXFrameAppendChild proto stdcall  :LPD3DXFRAME, :ptr D3DXFRAME
D3DXFrameFind proto stdcall  :ptr D3DXFRAME, :LPSTR
D3DXFrameRegisterNamedMatrices proto stdcall  :LPD3DXFRAME, :LPD3DXANIMATIONCONTROLLER
D3DXFrameNumNamedMatrices proto stdcall  :ptr D3DXFRAME
D3DXFrameCalculateBoundingSphere proto stdcall  :ptr D3DXFRAME, :LPD3DXVECTOR3, :ptr REAL4
D3DXCreateKeyframedAnimationSet proto stdcall  :LPSTR, :DOUBLE, :D3DXPLAYBACK_TYPE, :DWORD, :DWORD, :ptr D3DXKEY_CALLBACK, :ptr LPD3DXKEYFRAMEDANIMATIONSET
D3DXCreateCompressedAnimationSet proto stdcall  :LPSTR, :DOUBLE, :D3DXPLAYBACK_TYPE, :LPD3DXBUFFER, :DWORD, :ptr D3DXKEY_CALLBACK, :ptr LPD3DXCOMPRESSEDANIMATIONSET
D3DXCreateAnimationController proto stdcall  :DWORD, :DWORD, :DWORD, :DWORD, :ptr LPD3DXANIMATIONCONTROLLER
ifdef __cplusplus 
;}
endif 
endif 

;--- errors: 0
;--- end of file ---
